﻿using WebApiClientCore;
using WebApiClientCore.Attributes;
using BPM.Web.Shared.Data;
namespace BPM.Web.Shared.Service;

public interface ICodeGenConfigClient : IHttpApi
{
    /// <summary>
    /// 代码生成详细配置列表
    /// </summary>
    /// <param name="codeGen_Id">代码生成器Id</param>
    /// <param name="codeGen_AuthorName">作者姓名</param>
    /// <param name="codeGen_ClassName">类名</param>
    /// <param name="codeGen_TablePrefix">是否移除表前缀</param>
    /// <param name="codeGen_GenerateType">生成方式</param>
    /// <param name="codeGen_DatabaseName">数据库名</param>
    /// <param name="codeGen_TableName">数据库表名</param>
    /// <param name="codeGen_PackageName">包名</param>
    /// <param name="codeGen_BusName">业务名（业务代码包名称）</param>
    /// <param name="codeGen_TableComment">功能名（数据库表名称）</param>
    /// <param name="codeGen_MenuApplication">菜单应用分类（应用编码）</param>
    /// <param name="codeGen_MenuPid">菜单父级</param>
    /// <param name="id">主键Id</param>
    /// <param name="codeGenId">代码生成主表ID</param>
    /// <param name="columnName">数据库字段名</param>
    /// <param name="lowerColumnName">数据库字段名(首字母小写)</param>
    /// <param name="columnComment">字段描述</param>
    /// <param name="netType">.NET类型</param>
    /// <param name="effectType">作用类型（字典）</param>
    /// <param name="fkEntityName">外键实体名称</param>
    /// <param name="lowerFkEntityName">外键实体名称(首字母小写)</param>
    /// <param name="fkColumnName">外键显示字段</param>
    /// <param name="lowerFkColumnName">外键显示字段(首字母小写)</param>
    /// <param name="fkColumnNetType">外键显示字段.NET类型</param>
    /// <param name="dictTypeCode">字典code</param>
    /// <param name="whetherRetract">列表是否缩进（字典）</param>
    /// <param name="whetherRequired">是否必填（字典）</param>
    /// <param name="queryWhether">是否是查询条件</param>
    /// <param name="queryType">查询方式</param>
    /// <param name="whetherTable">列表显示</param>
    /// <param name="whetherOrderBy">列表排序显示</param>
    /// <param name="whetherAddUpdate">增改</param>
    /// <param name="columnKey">主外键</param>
    /// <param name="dataType">数据库中类型（物理类型）</param>
    /// <param name="whetherCommon">是否是通用字段</param>
    /// <returns>Success</returns>
    /// <exception cref="ApiException">A server side error occurred.</exception>
    [HttpGet("sysCodeGenerateConfig/list")]
    ITask<XnRestfulResult<List<CodeGenConfig>>> List5Async(long? codeGen_Id, string codeGen_AuthorName, string codeGen_ClassName, string codeGen_TablePrefix, string codeGen_GenerateType, string codeGen_DatabaseName, string codeGen_TableName, string codeGen_PackageName, string codeGen_BusName, string codeGen_TableComment, string codeGen_MenuApplication, long? codeGen_MenuPid, long? id, long? codeGenId, string columnName, string lowerColumnName, string columnComment, string netType, string effectType, string fkEntityName, string lowerFkEntityName, string fkColumnName, string lowerFkColumnName, string fkColumnNetType, string dictTypeCode, string whetherRetract, string whetherRequired, string queryWhether, string queryType, string whetherTable, string whetherOrderBy, string whetherAddUpdate, string columnKey, string dataType, string whetherCommon, CancellationToken token = default);

    /// <summary>
    /// 更新
    /// </summary>
    /// <returns>Success</returns>
    /// <exception cref="ApiException">A server side error occurred.</exception>
    [HttpPost("sysCodeGenerateConfig/edit")]
    Task<XnRestfulResult<string>> Edit7Async(System.Collections.Generic.IEnumerable<CodeGenConfig> body, CancellationToken token = default);

    /// <summary>
    /// 详情
    /// </summary>
    /// <param name="codeGen_Id">代码生成器Id</param>
    /// <param name="codeGen_AuthorName">作者姓名</param>
    /// <param name="codeGen_ClassName">类名</param>
    /// <param name="codeGen_TablePrefix">是否移除表前缀</param>
    /// <param name="codeGen_GenerateType">生成方式</param>
    /// <param name="codeGen_DatabaseName">数据库名</param>
    /// <param name="codeGen_TableName">数据库表名</param>
    /// <param name="codeGen_PackageName">包名</param>
    /// <param name="codeGen_BusName">业务名（业务代码包名称）</param>
    /// <param name="codeGen_TableComment">功能名（数据库表名称）</param>
    /// <param name="codeGen_MenuApplication">菜单应用分类（应用编码）</param>
    /// <param name="codeGen_MenuPid">菜单父级</param>
    /// <param name="id">主键Id</param>
    /// <param name="codeGenId">代码生成主表ID</param>
    /// <param name="columnName">数据库字段名</param>
    /// <param name="lowerColumnName">数据库字段名(首字母小写)</param>
    /// <param name="columnComment">字段描述</param>
    /// <param name="netType">.NET类型</param>
    /// <param name="effectType">作用类型（字典）</param>
    /// <param name="fkEntityName">外键实体名称</param>
    /// <param name="lowerFkEntityName">外键实体名称(首字母小写)</param>
    /// <param name="fkColumnName">外键显示字段</param>
    /// <param name="lowerFkColumnName">外键显示字段(首字母小写)</param>
    /// <param name="fkColumnNetType">外键显示字段.NET类型</param>
    /// <param name="dictTypeCode">字典code</param>
    /// <param name="whetherRetract">列表是否缩进（字典）</param>
    /// <param name="whetherRequired">是否必填（字典）</param>
    /// <param name="queryWhether">是否是查询条件</param>
    /// <param name="queryType">查询方式</param>
    /// <param name="whetherTable">列表显示</param>
    /// <param name="whetherOrderBy">列表排序显示</param>
    /// <param name="whetherAddUpdate">增改</param>
    /// <param name="columnKey">主外键</param>
    /// <param name="dataType">数据库中类型（物理类型）</param>
    /// <param name="whetherCommon">是否是通用字段</param>
    /// <returns>Success</returns>
    /// <exception cref="ApiException">A server side error occurred.</exception>
    [HttpGet("sysCodeGenerateConfig/detail")]
    ITask<XnRestfulResult<SysCodeGenConfig>> DetailGET7Async(QueryCodegenconfigInput body, long codeGen_Id, string codeGen_AuthorName, string codeGen_ClassName, string codeGen_TablePrefix, string codeGen_GenerateType, string codeGen_DatabaseName, string codeGen_TableName, string codeGen_PackageName, string codeGen_BusName, string codeGen_TableComment, string codeGen_MenuApplication, long? codeGen_MenuPid, long? id, long? codeGenId, string columnName, string lowerColumnName, string columnComment, string netType, string effectType, string fkEntityName, string lowerFkEntityName, string fkColumnName, string lowerFkColumnName, string fkColumnNetType, string dictTypeCode, string whetherRetract, string whetherRequired, string queryWhether, string queryType, string whetherTable, string whetherOrderBy, string whetherAddUpdate, string columnKey, string dataType, string whetherCommon, CancellationToken token = default);
}
